package phyzik.solides;

import javax.vecmath.Matrix3f;
import javax.vecmath.Quat4f;
import javax.vecmath.Vector3f;

import outils.Constantes;

public class PhysiqueJoueur extends PhysiqueSolide {
	/**
	 * Physique des joueurs
	 */
	private static final long serialVersionUID = 13L;

	public PhysiqueJoueur(int eq, int num) {
		super();
		float x = Constantes.JOUEURS_X[num];
		float y = Constantes.JOUEURS_Y[num];
		if (eq != 1) {
			x = -x;
			y = -y;
		}

		position = new Vector3f(x, y, Constantes.HAUTEUR_JOUEUR);
		orientation = new Quat4f(0f, 0f, 0f, 1f);
		inverseMasse = 0.01f;
		Matrix3f I = new Matrix3f(
				new float[] {
						(1f / 12f)
								* ((2 * Constantes.LONGUEUR_JOUEUR)
										* (2 * Constantes.LONGUEUR_JOUEUR) + (2 * Constantes.COTE_JOUEUR)
										* (2 * Constantes.COTE_JOUEUR)),
						0,
						0,
						0,
						(1f / 12f)
								* ((2 * Constantes.LONGUEUR_JOUEUR)
										* (2 * Constantes.LONGUEUR_JOUEUR) + (2 * Constantes.COTE_JOUEUR)
										* (2 * Constantes.COTE_JOUEUR)),
						0,
						0,
						0,
						(1f / 12f)
								* ((2 * Constantes.COTE_JOUEUR)
										* (2 * Constantes.COTE_JOUEUR) + (2 * Constantes.COTE_JOUEUR)
										* (2 * Constantes.COTE_JOUEUR)) });
		I.mul(1 / inverseMasse);
		setInertie(I);
		setTransformation();
		calculsDerives();
	}
}
